1. Field of the Invention
The present invention relates generally to an improved data processing system, and in particular to a computer implemented method, an apparatus and a computer program product for detecting aspectual behavior in unified modeling language artifacts.
2. Description of the Related Art
In the current practice of software design within the field of software engineering, the Unified Modeling Language (UML) is a standardized specification language for object modeling. Unified Modeling Language is a general-purpose modeling language that may be used to create an abstract model of a system. The Unified Modeling Language specification is defined and managed by the Object Management Group (OMG) within the scope of a Unified Modeling Language meta-model, using a Meta-Object Facility meta-model (MOF). As with other Meta-Object Facility based specifications, the Unified Modeling Language meta-model and Unified Modeling Language models produced in accordance with the specification may be serialized in Extensible Markup Language (XML). Unified Modeling Language was designed to provide software designers with a capability to design, build, and document complex computer software systems. Unified Modeling Language is not restricted to the field of modeling software and may also be used for business process modeling as an aid to eventual application development.
During software development, developers typically strive to produce a clean implementation for efficient operation and maintenance. To meet these objectives, the design artifacts themselves, in turn, explicitly address crosscutting concerns. Design artifacts include, for example, data structure representations in the form of unified modeling language interaction diagrams and class diagrams.
Crosscutting concerns are aspects of a program which affect other concerns in the program to effectively cut across the breadth of the application. These concerns typically cannot be decomposed in an easy or clear separation from the rest of the application or system during the design and implementation phases. In the absence of a clear separation, the result is typically a scattering of similar code or tangling of components within the application, or some combination of both.
For instance, during the creation of a health care application involving the creation and management of patient records, the normal maintenance of the patient records would be perceived as a core function. In contrast, for example, the logging of transaction updates to the patient database would be viewed as a cross-cutting concern since, the functions of logging cross many paths within the application. In another example, a login authentication system providing the function of authentication may also cross cut many other functions of the application.
Although, a number of techniques have addressed aspect mining by focusing on source code examination or execution trace analysis, aspect mining at stages earlier to implementation has mainly focused on the requirements stage in the form of early aspects. Therefore it would be advantageous to have a computer implemented method, an apparatus and a computer program product for detecting aspectual behavior in unified modeling language artifacts in a manner that overcomes the previously discussed problems.